<?php

/**
 * @package Bike
 * @subpackage Request
 */

/**
 *
 * Interface for request handling classes
 * @author Chrome
 * @package Bike
 * @subpackage Request
 */
interface Bike_IRequest {

	/**
	 *
	 * Constructor interface
	 */
	public function __construct();

	/**
	 *
	 * Get value from $_SERVER by key
	 * @param string $varname
	 * @return mixed
	 */
	public function getServerVar($varname);

	/**
	 *
	 * Get value from $_ENV by key
	 * @param string $varname
	 * @return mixed
	 */
	public function getEnvVar($varname);

	/**
	 *
	 * Get value from $_GET by key
	 * @param string $varname
	 * @return mixed
	 */
	public function getGetVar($varname);

	/**
	 *
	 * Get value from $_POST by key
	 * @param string $varname
	 * @return mixed
	 */
	public function getPostVar($varname);

	/**
	 *
	 * Get all values from $_POST
	 * @return array
	 */
	public function getPostVars();

	/**
	 *
	 * Get value from $_COOKIE by key
	 * @param string $varname
	 * @return mixed
	 */
	public function getCookieVar($varname);

	/**
	 *
	 * Get value from $_REQUEST by key
	 * @param string $varname
	 * @return mixed
	 */
	public function getRequestVar($varname);

	/**
	 *
	 * Get all values from $_REQUEST
	 * @return array
	 */
	public function getRequestVars();

	/**
	 *
	 * Get current requested path
	 * @return string
	 */
	public function getPath();
}
